题目地址 (opens new window)

  • 🙂 第一次练习 2020年5月19日 主要是理解深拷贝的意思,其实就是按照原来的顺序,然后在原来链表修改的时候不要影响现有链表
  • 😄 第二次练习

# 字典表

解题代码

public Node copyRandomList(Node head) {
    /**
         * 1. copy -> hashmap
         * 2. 从 map 中取出,后拼接
         */
    if (head == null) return null;

    HashMap<Node, Node> hashMap = new HashMap<Node, Node>();
    Node p = head;
    while(p != null) {
        hashMap.put(p, new Node(p.val));
        p = p.next;
    }
    p = head;
    while(p != null) {
        hashMap.get(p).next = hashMap.get(p.next);
        hashMap.get(p).random = hashMap.get(p.random);
        p = p.next;
    }

    return hashMap.get(head);
}

# 易错点

  • 易错项 1
最后编辑时间: 7/14/2020, 9:21:47 AM